package entity

import (
	"core/models/db"
	"go.mongodb.org/mongo-driver/bson/primitive"
)

type ActivityReceiveLog struct {
	Id         primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID        uint               `bson:"uid" json:"uid"`               //用户唯一ID
	ActivityID uint               `bson:"activityID" json:"activityID"` //活动id
	InviteID   uint               `bson:"inviteID" json:"inviteID"`     //条件id
	RewardID   uint               `bson:"rewardID" json:"rewardID"`     //奖励id
	Num        int64              `bson:"num" json:"num"`               //领取数量
	Energy     int64              `bson:"energy" json:"energy"`         //领取能量值
	TypeID     uint               `bson:"typeID" json:"typeID"`         //领取类型
	TypeName   string             `bson:"typeName" json:"typeName"`     //领取类型名称
	TypeImg    string             `bson:"typeImg" json:"typeImg"`       //领取类型图片
	TypeModule string             `bson:"typeModule" json:"typeModule"` //领取类型模块
	AddTime    string             `bson:"addTime" json:"addTime"`       //添加时间
}

// StraightUserLog 直接好友贡献流水
type StraightUserLog struct {
	Id          primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID         uint               `bson:"uid" json:"uid"`                 //用户唯一ID
	GID         uint               `bson:"gid" json:"gid""`                //贡献人
	Nickname    string             `bson:"nickname" json:"nickname"`       //贡献人用户名
	Avatar      string             `bson:"avatar" json:"avatar"`           //贡献人头像
	LevelID     db.RoleLevel       `bson:"levelID" json:"levelID"`         //贡献人等级
	InviteCode  int64              `bson:"inviteCode" json:"inviteCode"`   //邀请码
	Num         int64              `bson:"num" json:"num"`                 //贡献数量
	TypeID      uint               `bson:"typeID" json:"typeID"`           //贡献类型
	TypeName    string             `bson:"typeName" json:"typeName"`       //贡献类型名称
	TypeImg     string             `bson:"typeImg" json:"typeImg"`         //贡献类型图片
	TypeModule  string             `bson:"typeModule" json:"typeModule"`   //贡献类型模块
	IsReceive   bool               `bson:"isReceive" json:"isReceive"`     //是否领取
	AddTime     string             `bson:"addTime" json:"addTime"`         //添加时间
	ReceiveTime string             `bson:"receiveTime" json:"receiveTime"` //领取时间
}

// BetweenUserLog 间接好友贡献流水
type BetweenUserLog struct {
	Id          primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID         uint               `bson:"uid" json:"uid"`                 //用户唯一ID
	GID         uint               `bson:"gid" json:"gid""`                //贡献人
	Nickname    string             `bson:"nickname" json:"nickname"`       //用户名
	Avatar      string             `bson:"avatar" json:"avatar"`           //头像
	LevelID     db.RoleLevel       `bson:"levelID" json:"levelID"`         //贡献人等级
	InviteCode  int64              `bson:"inviteCode" json:"inviteCode"`   //邀请码
	Num         int64              `bson:"num" json:"num"`                 //贡献数量
	TypeID      uint               `bson:"typeID" json:"typeID"`           //贡献类型
	TypeName    string             `bson:"typeName" json:"typeName"`       //贡献类型名称
	TypeImg     string             `bson:"typeImg" json:"typeImg"`         //贡献类型图片
	TypeModule  string             `bson:"typeModule" json:"typeModule"`   //贡献类型模块
	IsReceive   bool               `bson:"isReceive" json:"isReceive"`     //是否领取
	AddTime     string             `bson:"addTime" json:"addTime"`         //添加时间
	ReceiveTime string             `bson:"receiveTime" json:"receiveTime"` //领取时间
}

type ActivityContributeReceiveLog struct {
	Id          primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID         uint               `bson:"uid" json:"uid"`                 //用户唯一ID
	ActivityID  uint               `bson:"activityID" json:"activityID"`   //活动id
	Num         int64              `bson:"num" json:"num"`                 //领取数量
	TypeID      uint               `bson:"typeID" json:"typeID"`           //领取类型id
	TypeName    string             `bson:"typeName" json:"typeName"`       //领取类型名称
	TypeImg     string             `bson:"typeImg" json:"typeImg"`         //领取类型图
	TypeModule  string             `bson:"typeModule" json:"typeModule"`   //领取类型模块
	ReceiveTime string             `bson:"receiveTime" json:"receiveTime"` //领取时间
}
